﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Objects;

namespace ImobitechDao.Repositories
{
    public class PessoaPapelImovelRepository : BaseRepository<Pessoa_Papel_Imovel>, IPessoaPapelImovelRepository
    {
        #region Implementação obrigatoria da classe base
        public PessoaPapelImovelRepository(ImobitechEntities context) : base(context) { }

        protected override string TableName
        {
            get { return "Pessoa_Papel_Imovel"; }
        }

        protected override string EntitySetName
        {
            get { return "Pessoa_Papel_Imovel"; }
        }
        #endregion

        public List<Pessoa_Papel_Imovel> retornaLocatarios()
        {
            //IQueryable<Pessoa_Papel_Imovel> busca = (from p in _context.Pessoa_Papel_Imovel
            //                             where p.Pessoa_Papel.Papel.Nome == "Locatario"
            //                             select p).AsQueryable();

            //ObjectQuery oQuery = (ObjectQuery)busca;
            //string cmdSQL = oQuery.ToTraceString();

            return (from p in _context.Pessoa_Papel_Imovel
                    where p.Pessoa_Papel.Papel.Nome == "Locatario"
                    select p).ToList();
        }

        public List<Pessoa_Papel_Imovel> retornaLocatarios(int id)
        {
            IQueryable<Pessoa_Papel_Imovel> busca = (from p in _context.Pessoa_Papel_Imovel
                                                     where p.Pessoa_Papel.Papel.Nome == "Locatario" && p.Pessoa_Papel.Pessoa.Id == id
                                                     select p).AsQueryable();

            ObjectQuery oQuery = (ObjectQuery)busca;
            string cmdSQL = oQuery.ToTraceString();
            return (from p in _context.Pessoa_Papel_Imovel
                    where p.Pessoa_Papel.Papel.Nome == "Locatario" && p.Pessoa_Papel.Pessoa.Id == id
                    select p).ToList();
        }

        public List<Pessoa_Papel_Imovel> retornaDonos(int id)
        {
            IQueryable<Pessoa_Papel_Imovel> busca = (from p in _context.Pessoa_Papel_Imovel
                                                     where p.Pessoa_Papel.Papel.Nome == "Dono" && p.Pessoa_Papel.Pessoa.Id == id
                                                     select p).AsQueryable();

            ObjectQuery oQuery = (ObjectQuery)busca;
            string cmdSQL = oQuery.ToTraceString();
            return (from p in _context.Pessoa_Papel_Imovel
                    where p.Pessoa_Papel.Papel.Nome == "Dono" && p.Pessoa_Papel.Pessoa.Id == id
                    select p).ToList();
        }
    }
}
